In one such system, for example, the MAC address of a network card installed in the computer, the serial number of the BIOS or of the hard disk may be used as the identification code. Upon each start of the program, the MAC address or the corresponding serial number may be compared with the reference code. If both are identical, the program is enabled to run and is executable. This system has the disadvantage that the run authorization of the program is linked with the presence of a hardware component (network card, hard disk) or software component (BIOS) of the computer, so that upon failure of such component (e.g. due to a defect) or upon replacement of such component, the program may no longer be authorized to run.
It is further known to check the authorization of a program to run on a computer by checking, every time the program is started, that a license number entered during installation of the program is authentic. This license number is usually given to the user when purchasing the program, e.g. in the form of a label on the packaging of the program. This method has the disadvantage that it allows the program to be installed in an executable manner and to be executed at the same time on different computers, since the authorization to run the program is determined only by checking the authenticity of the license number and not, e.g., by linking it to a unique component of the computer on which the program is intended to run.
Finally, it is also known to use a so-called “dongle” for checking the authorization of a program to run. A dongle is a hardware element connected to the computer (e.g. via the serial or the parallel port). The program is designed such that, when it is started, it checks whether the dongle is connected to the computer. If this is the case, the program is authorized to run. In this method, the dongle must be distributed by the software manufacturer as well, which leads to increased costs. Further, the dongle also occupies a port of the computer.